package com.Algorithm.HUAWEI.four20220505;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: zjz
 * @Date: 2022/05/23/13:48
 * @Description:
 * @Target:
 */
public class 矩阵乘法 {
    /*
    * 描述
    如果A是个x行y列的矩阵，B是个y行z列的矩阵，把A和B相乘，其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的

    矩阵的大小不超过100*100
    输入描述：
    第一行包含一个正整数x，代表第一个矩阵的行数
    第二行包含一个正整数y，代表第一个矩阵的列数和第二个矩阵的行数
    第三行包含一个正整数z，代表第二个矩阵的列数
    之后x行，每行y个整数，代表第一个矩阵的值
    之后y行，每行z个整数，代表第二个矩阵的值

    输出描述：
    对于每组输入数据，输出x行，每行z个整数，代表两个矩阵相乘的结果
    *
    *
    *   2
        3
        2
        1 2 3
        3 2 1
        1 2
        2 1
        3 3
        *
        * 输出：
        14 13
        10 11
        复制
        说明：
        1 2 3
        3 2 1
        乘以
        1 2
        2 1
        3 3
        等于
        14 13
        10 11
    * */


    // 输入两个矩阵，计算矩阵的值

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        int M1 =  Integer.valueOf(in.readLine());
        int COM =  Integer.valueOf(in.readLine());
        int M2 = Integer.valueOf(in.readLine());


        int[][] ints1 = new int[M1][COM];
        int[][] ints2 = new int[COM][M2];
        int[][] result = new int[M1][M2];



        for (int i = 0; i < ints1.length; i++) {
            String s[] = in.readLine().split(" ");
            for (int j = 0; j < ints1[0].length; j++) {
               ints1[i][j] = Integer.valueOf(s[j]);
            }
        }


        for (int i = 0; i < ints2.length; i++) {
            String s[] = in.readLine().split(" ");
            for (int j = 0; j < ints2[0].length; j++) {
                ints2[i][j] = Integer.valueOf(s[j]);
            }
        }



/*        for (int i = 0; i < ints1.length; i++) {
            for (int j = 0; j < ints1[0].length; j++) {
                System.out.print(ints1[i][j]+" ");
            }
            System.out.println();
        }*/

/*        for (int i = 0; i < ints2.length; i++) {
            for (int j = 0; j < ints2[0].length; j++) {
                System.out.print(ints2[i][j]+" ");
            }
            System.out.println();
        }*/




        for (int i = 0; i < ints1.length; i++) {
            for (int k = 0; k < result[0].length; k++) {
                for (int j = 0; j < ints1[0].length; j++) {
                 result[i][k] += ints1[i][j] * ints2[j][k];
              }
            }
        }


        for (int i = 0; i < result.length; i++) {
            for (int j = 0; j < result[0].length; j++) {
                System.out.print(result[i][j]+" ");
            }
            System.out.println();
        }

    }
























}
